#ifndef HAS_ITEM_ENGINE
#include <itemengine.h>
#endif

typedef struct _DockItemEngineEventCallbacks {
  void (*expose_callback)(DockItem* item);
  void (*redraw_callback)(DockItem* item);
  void (*mouse_enter_callback)(DockItem* item);
  void (*mouse_move_callback)(DockItem* item,guint rel_x,guint rel_y);
  void (*mouse_exit_callback)(DockItem* item);
  void (*mouse_down_callback)(DockItem* item);
  void (*mouse_up_callback)(DockItem* item);
  void (*mouse_scroll_down_callback)(DockItem* item);
  void (*mouse_scroll_up_callback)(DockItem* item);
  void (*mouse_rclick_callback)(DockItem* item);
  void (*mouse_dnd_drop_callback)(DockItem* item,void* drop_item);
  void (*engine_init_callback)(DockInterface*,DockItemEngine*);
} DockItemEngineEventCallbacks;

void engine_load(gchar* dllname, DockItemEngine* engine, DockItemEngineEventCallbacks* callbacks);
